<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      /*
            逻辑运算式的短路
                &&： 一假则假
                ||： 一真则真
            也就是如果通过左边就能确定结果，那根本没必要执行右边，所以右边不执行，这就叫短路
        */
      //    true && alert(1)  // 弹
      //    false && alert(2) // 不弹

      //    true || alert(4)  // 不弹
      //    false || alert(5) // 弹

      /*
        逻辑运算符组成的式子叫逻辑运算式
        既然是运算式都会有运算结果
            逻辑运算式的结果不一定是布尔值，而是左边式子的结果或者右边式子的结果
            如果短路了，逻辑运算式的结果就是左边的结果，如果没短路，逻辑运算式的结果就是右边的结果
     */
      // const money = 1500
      // // 没有短路，&&要一假则假，没短路，就会执行右边
      // const res1 = money >= 1000 && money < 2000
      // console.log(res1) // true

    //   console.log(10 + 2 && 3 * 6) // 18
    //   console.log(10 * 0  && 3 * 6) // 0
    
    // 一真则真，短路了
    // console.log( 10 || 20 ) // 10
    // console.log( 0 || 20 ) // 20
    // alert(1||2) // 1


    function fn (n1, n2) {
        // 给函数形参设置默认值
        n1 = n1 || 10
        n2 = n2 || 20
    }

    fn()

    </script>
  </body>
</html>
